prob.poker                package:unknown                R Documentation

Chances de vencer uma partida de pôquer

Description:

	A função faz simulações de partidas de pôquer Texas Hold’Em para estimar as
chances do usuário vencer, empatar, ou perder a partida, bem como as chances de realizar
cada tipo de jogo, com as cartas que tem na mão.

Usage:

	prob.poker(mao1, mao2, flop1 = NULL, flop2 = NULL, flop3 = NULL, turn = NULL,
river = NULL, nadv, nsim = 1000)

Arguments:

	mao1,mao2		Caracteres contendo valor e naipe das cartas que estão na
				mão do usuário. Veja seção Note para o formato correto de
				argumentos de carta.

	flop1,flop2,flop3	Caracteres contendo valor e naipe da primeira, segunda e
				terceira cartas (flop) que foram abertas sobre a mesa. Se
				NULL (padrão), cartas serão sorteadas. Veja Note para o
				formato correto de argumentos de carta.

	turn			Caractere contendo valor e naipe da quarta carta (turn)
				que foi aberta sobre a mesa. Se NULL (padrão), carta será
				sorteada. Veja Note para o formato correto de argumentos
				de carta.

	river			Caractere contendo valor e naipe da quinta carta (river)
				que foi aberta sobre a mesa. Se NULL (padrão), carta será
				sorteada. Veja Note para o formato correto de argumentos
				de carta.

	nadv			Número de adversários contra os quais o usuário está
				jogando.

	nsim			Número de partidas a serem simuladas, padronizado para
				1000.

Details:

	Quatro vezes em uma partida de pôquer Texas Hold’em, o jogador precisa tomar uma
importante decisão: largar a mão, pagar a aposta, ou aumentá-la. Essa decisão parte de
uma pergunta importante: "quais as chances de ser vencedor ao final da partida, com as
cartas que tenho?". Essa função pode ser usada em cada uma das rodadas de aposta (pré
flop, flop, turn e river) para embasar a decisão do jogador e permitir que ele aposte
(ou não) de acordo com as perspectivas reais de vitória.
	Em cada partida simulada, a função sorteia as cartas necessárias (i.e., as
cartas das mãos dos adversários e, se não foram inseridas como argumentos, as que serão
abertas sobre a mesa), avalia o melhor jogo final de cada adversário, e determina o
vencedor. As chances de cada resultado para o usuário (vitória, empate, derrota) são
obtidas a partir dos vencedores das simulações. As chances de cada tipo de jogo são
obtidas a partir dos jogos obtido pelo usuário nas simulações.

Value:

	A função retorna um objeto da classe list com os seguintes componentes:

	Chance (%) de cada	porcentagem das partidas simuladas que foram
	resultado		vencidas pelo usuário (vitória), vencidas pelo usuário
				e um adversário empatados (empate), e vencidas por
				adversários (derrota).
				
	Chance (%) de realizar	porcentagem das partidas simuladas ao
	cada tipo de jogo	final das quais o usuário obteve cada tipo de jogo:
				nenhum, par, dois pares, trio, sequência, flush, full
				house, quadra, straight flush.

	Chance (%) de realizar	porcentagem das partidas simuladas ao final das quais o
	cada tipo de jogo ou	usuário obteve cada tipo de jogo ou um jogo superior.
	melhor

Warning:

	A função é interrompida em três situações:

	Quando qualquer carta inserida como argumento não pertence ao baralho virtual de
	52 cartas, no formato apropriado (ver Note).

	Quando uma mesma carta é dada como argumento mais de uma vez.

	Quando o número de adversários é superior a 22, ou seja, quando não há cartas
	suficientes para serem sorteadas para todos os adversários

Note:

	Todos os argumentos de cartas precisam estar no seguinte formato: "valor da
carta", "primeira letra do naipe" (e.g., 10 de copas é "10c", rei de paus é "Kp"). Os 52
valores possíveis de serem inseridos como argumentos de carta se encontram no vetor
baralho.simp, em Examples. A função diferencia maiúsculas de minúsculas, portanto letras
de valores (J, Q, K, A) tem que estar em caixa alta e letras de naipe (c, o, p, e), em
caixa baixa. A ordem em que as cartas da mão (mao1, mao2) e da mesa (flop1, flop2, flop3,
turn, river) são inseridas não é importante.
	Um maior número de simulações (nsim) faz com que as chances retornadas pela
função sejam mais precisas, porém também faz com que o tempo de processamento seja
maior. Quanto mais argumentos de carta são dados, mais precisas são as chances
calculadas, pois há menos cartas para serem simuladas.
	A função tem certas limitações, como não considerar as possíveis decisões de
jogadores nas apostas subsequentes. Assim, por exemplo, o número de
adversários inseridos como argumento se manterá até o fim das partidas simuladas, sem
considerar que eles poderiam sair em uma das futuras rodadas de aposta.
Consequentemente, as chances de vencer do usuário serão mais baixas quanto maior o nadv,
pois aumenta a probabilidade de qualquer adversário ter um jogo superior ao do usuário.

Author(s):

	João C. T. Menezes
	jocateme@gmail.com

Examples:

### Criando baralho virtual e sorteando cartas que serão utilizadas
baralho.simp <- paste(c(rep(2:10, each = 4), rep(c("J", "Q", "K", "A"), each = 4)),
rep(c("p", "c", "o", "e"), times = 13), sep = "")
sample <- sample(baralho.simp,size=7) ## sorteando sete cartas para serem utilizadas
no exemplo
mao1 <- sample[1]
mao2 <- sample[2]
flop1 <- sample[3]
flop2 <- sample[4]
flop3 <- sample[5]
turn <- sample[6]
river <- sample[7]

### Exemplo do avanço de uma mesma partida heads-up (i.e., usuário contra um adversário)
### chances pré-flop
prob.poker(mao1, mao2, nadv = 1)

### chances após flop
prob.poker(mao1, mao2, flop1, flop2, flop3, nadv = 1)

### chances após turn
prob.poker(mao1, mao2, flop1, flop2, flop3, turn, nadv = 1)

### chances após river
prob.poker(mao1, mao2, flop1, flop2, flop3, turn, river, nadv = 1)